// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const db = cloud.database()
  const _ = db.command
  const $ = _.aggregate
  
  // 获取请求参数，默认限制返回4条
  const limit = event.limit || 4

  try {
    // 查询有特价的商品（specialPrice字段存在且小于price的商品）
    const result = await db.collection('products')
      .aggregate()
      .project({
        _id: 1,
        name: 1,
        price: 1,
        specialPrice: 1,
        images: 1,
        stock: 1,
        soldCount: 1,
        categoryId: 1,
        brief: 1,
        hasDiscount: $.lt(['$specialPrice', '$price']) // 添加一个计算字段，判断是否有折扣
      })
      .match({
        hasDiscount: true // 只选择有折扣的商品
      })
      .sort({
        specialPrice: 1 // 按特价从低到高排序
      })
      .limit(limit)
      .end()
    
    return {
      success: true,
      data: result.list,
      openid: wxContext.OPENID
    }
  } catch (err) {
    console.error('获取特价商品失败', err)
    return {
      success: false,
      error: err,
      openid: wxContext.OPENID
    }
  }
} 